A modern computer network system typically includes a variety of components. For example, in packet-switched computer networks, such as the Internet or local area networks (LANs), logically addressed data packets are sometimes routed from a source to a destination through one or more intermediate nodes. The intermediate nodes may comprise hardware components, such as routers, which direct and control the flow of data through the networks. Networks also may include other components, such as servers, bridges, gateways, firewalls, and switches, through which data packets may travel.
A network system may experience a variety of events that can cause a degradation in its performance. For example, increased data loads can affect the performance of network components, such as routers, and slow the ability of a network to distribute data. Increased compute loads can stress the capabilities of servers. Other events, such as a denial-of-service (DoS) attack or a distributed denial-of-service (DDoS) attack, can overwhelm and cripple a server with large volumes of communications requests. As further examples, network components may experience packet loss, causing data packets to fail to reach a destination, or packet corruption, causing data packets to arrive at a destination with errors. Unexpected disruptions and delays can impact an entity's ability to function in a timely and efficient manner.
To prevent unexpected disruptions and delays, an entity may wish to understand how a configuration of a particular set of provisioned resources, such as network components and servers, will react under certain conditions that may impact performance. However, testing such resources can be time consuming and expensive. For example, one way to test network components is through the use of hardware components that are designed for testing purposes. Such hardware components can be used to determine whether a device is functioning properly. However, these components require configuration that is time consuming, costly, and complex. Furthermore, users of hosted environments, such as those in a public cloud computing environment, are unable to directly conduct such tests because such users are making use of an infrastructure that is within another party's control.